package br.eng.eliseu.gwt.gestaoWeb.client.ui.component;

import br.eng.eliseu.gwt.gestaoWeb.model.pessoa.PessoaEndereco;

import com.google.gwt.cell.client.AbstractCell;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;

/*
 * Classe Celula do CellList
 */
class EnderecoCell extends AbstractCell<PessoaEndereco> {

	public EnderecoCell() {
	}

	@Override
	public void render(com.google.gwt.cell.client.Cell.Context context, PessoaEndereco value, SafeHtmlBuilder sb) {
		if (value == null) {
			return;
		}

		sb.appendHtmlConstant("<table><tr style='font-family:Courier New;font-size:85%;'>");

		sb = linhaItem(sb, value.getPrincipal(), "Tipo Endereço:", value.getTipoEndereco() != null ? value.getTipoEndereco().getNome() : "");
		sb = linhaItem(sb, false, "Logradouro:", value.getEndereco().getTipoLogradouro().getNome() + " " + 
					value.getEndereco().getLogradouro() + ", " + value.getEndereco().getNumero());
		sb = linhaItem(sb, false, "Bairro:", value.getEndereco().getBairro());
		String c = value.getEndereco().getCidade() != null ? value.getEndereco().getCidade().getNome() : "";
		String e = value.getEndereco().getEstado() != null ? value.getEndereco().getEstado().getSigla() : "";
		sb = linhaItem(sb, false, "Cidade:", c + "-" + e);
		sb = linhaItem(sb, false, "CEP:", value.getEndereco().getCep());

		sb.appendHtmlConstant("</table>");

	}

	public SafeHtmlBuilder linhaItem(SafeHtmlBuilder sb, Boolean principal, String titulo, String valor) {

		sb.appendHtmlConstant("<tr>");

		sb.appendHtmlConstant("<td width='5%'>");
		sb.appendEscaped(principal ? "*" : "");
		sb.appendHtmlConstant("</td>");

		sb.appendHtmlConstant("<td width='30%'align='right'><b>");
		sb.appendEscaped(titulo);
		sb.appendHtmlConstant("</b></td>");

		sb.appendHtmlConstant("<td width='65%'>");
		sb.appendEscaped(valor);
		sb.appendHtmlConstant("</td>");

		sb.appendHtmlConstant("</tr>");
		return sb;
	}

}
